package net.qiqbframework.persisthanding.dao;

import java.util.Collection;
import java.util.List;
import java.util.Map;

public interface BasicEntityPoDao<Po extends BasicEntityPo> {

    List<Po> batchSelectPosByIds(Collection<String> ids);

    /**
     * 根据实体ID查询
     *
     * @param id
     * @return
     */
    Po selectPoById(String id);

    /**
     * 动态跟新
     *
     * @param newPo
     * @param oldPo
     * @return
     */
    boolean dynamicUpdateById(Po newPo, Po oldPo);

    /**
     * 批量更新
     *
     * @param newAndOldMap key 新值，value 旧值
     * @return
     */
    boolean batchDynamicUpdateById(Map<Po,Po> newAndOldMap);

    /**
     * 批量新增
     *
     * @param pos
     * @return
     */
    boolean batchInsertPos(Collection<Po> pos);

    /**
     * 根据ID批量删除
     *
     * @param pos
     * @return
     */
    boolean batchDeletePosById(Collection<Po> pos);

}
